package com.google.code.jtasks.client.services;

import com.google.code.jtasks.common.data.Task;

import java.util.List;

/**
 * Интерфейс сервиса задач. Позволяет выполнять различные операции над заданиями.
 */
public interface TaskService {
    /**
     * Загружает и возвращает список всех задач.
     */
    List<Task> loadAllTasks();

    /**
     * Добавляет новую задачу.
     * @param task объект задачи
     */
    void addTask(Task task);

    /**
     * Удаляет указанную задачу.
     * @param task объект задачи
     */
    void deleteTask(Task task);

    /**
     * Ищет задачи, содержащие заданную подстроку в имени.
     * @param name часть имени или всё имя
     * @return список задач, которые содержат в своём имени заданную подстроку
     */
    List<Task> findTaskByName(String name);
}
